FireBird - Too many concurrent executions of the same request 335544663L

Otázka od: Roland Turcan

20. 11. 2002 23:30

         335544663L
Hello delphi-l@clexpert.cz!

Mam takyto trigger:

CREATE TRIGGER KALENDAR_AD FOR KALENDAR ACTIVE
AFTER DELETE POSITION 0
AS
BEGIN
  delete from kalendar where cislo=old.cislo;
END

Ide o to ze ak zmazem zaznam tak musim vymazat aj vsetky zaznamy,
ktore maju CISLO rovnake

"Too many concurrent executions of the same request" co presne v
cislach, znamena to TOO MANY. Je to zavisle od poctu riadkov, pamati
servera,...

Pri zmazani 1000 riadkov mi uz zahlasil tuto chybu, ale menej ide.
Presne cislo som nezistoval, myslim ze je to zavisle od niecoho ineho,
alebo sa mylim ?


--
Best regards, TRoland
http://www.rotursoft.sk

Odpovedá: Lauko Stefan

21. 11. 2002 0:04

         335544663L
Ahoj,
tak by si to nemal robit. Obrazne povedane tento triger sa vola "rekurzivne"
a zrejme pri urcitom vnoreni/priechode to rachne.
Lauko.

----- Original Message -----
From: "Roland Turcan" <rolo@sedas.sk>
Sent: Wednesday, November 20, 2002 9:58 PM
> Mam takyto trigger:
>
> CREATE TRIGGER KALENDAR_AD FOR KALENDAR ACTIVE
> AFTER DELETE POSITION 0
> AS
> BEGIN
> delete from kalendar where cislo=old.cislo;
> END
>
> Ide o to ze ak zmazem zaznam tak musim vymazat aj vsetky zaznamy,
> ktore maju CISLO rovnake
>
> "Too many concurrent executions of the same request" co presne v
> cislach, znamena to TOO MANY. Je to zavisle od poctu riadkov, pamati
> servera,...
>
> Pri zmazani 1000 riadkov mi uz zahlasil tuto chybu, ale menej ide.
> Presne cislo som nezistoval, myslim ze je to zavisle od niecoho ineho,
> alebo sa mylim ?
>
>
> --
> Best regards, TRoland
> http://www.rotursoft.sk
>
>

Odpovedá: Petr Palicka

21. 11. 2002 0:55

         335544663L
ahoj,

toto se mi stavalo, kdyz jsem si v trigeru smazal vetu,
ktera se mela mazat i v poslanem delete. podle toho
triggeru by to mohl byt i tvuj pripad.

prikladne:

mam v tabulce tabulka nejaky sloupec "cosi" a triger
after delete tabulka kde je toto:
  if (old.cosi is not null or old.cosi j<>0) then
    delete from tabulka where cosi=old.cosi;

no rekneme, ze mam 5 zaznamu, ktere maji ve sloupci
"cosi" hodnotu 1658. potom to spadne, protoze smaze
prvni zaznam, v trigeru smaze druhy, na to v trigeru treti,
atd, az v trigeru paty, pak se ukonci posledne volany triger
a podle delete z toho predposledniho se to pokusi smazat
ten paty zaznam co uz je kdesi...

mozna by to Pavel Cisar vysvetli fundovane a treba je to
jenom otazka, kolikrat FB unese vnoreni triggeru, coz
imho bude radove v desitkach vnoreni.

peca

Odpovedá: Petr Palicka

21. 11. 2002 11:12

         335544663L
ahoj,

> CREATE TRIGGER KALENDAR_AD FOR KALENDAR ACTIVE
> AFTER DELETE POSITION 0
> AS
> BEGIN
> delete from kalendar where cislo=old.cislo;
> END

zkus upravit takto:

  delete from kalendar
    where
      cislo=old.cislo and
      primarniklic<>old.primarni klic

jako primarni klic pouzij nejaky unique sloupec tabulky,
nebo rdb$key (tusim, presne si nevzpomenu, ale mozna
tusis, kde hledat ;).

peca

Odpovedá: Roland Turcan

21. 11. 2002 9:40

         335544663L
<<< 21. 11. 2002 1:04 - Lauko Stefan "laukosw@naex.sk" >>>
LS> Ahoj,
LS> tak by si to nemal robit. Obrazne povedane tento triger sa vola
"rekurzivne"
LS> a zrejme pri urcitom vnoreni/priechode to rachne.

Ahoj, ja presne viem co sa v nom udeje, ale mam max. 99 zaznamov ktore
sa takto mazu. Ked som skusal tak bola hranica cca. 1000 zaznamov, ale
chcem vediet co by som mohol ocakavat, alebo od coho
zavisi to rachnutie.
--
Best regards, TRoland
http://www.rotursoft.sk